import { Component, OnInit } from '@angular/core';
import { JsonApiService } from "app/core/api/json-api.service"; //http请求配置引入
import { config } from '../../shared/smartadmin.config';

declare var $: any;
@Component({
	selector: 'sa-weightCount-yt',
	templateUrl: './weightCount-yt.component.html',
})
export class WeightCountYtComponent implements OnInit {
	tableData: any[] = []; //table数据
	totalCount: number = 0; //分页总条数
	curPage: number = 1; //分页当前页
	pageSize: number = 10; //内置的分页每页条数
	searchKey: string = ''; //搜索keyword
	carList: any[] = []; //车辆数据
	companyId: string = ''; //公司
	companyList: any[] = []; //公司数据
	deviceId: string = ''; //设备ID
	startTime: string = ''; //开始时间
	endTime: string = ''; //结束时间

	constructor(private jsonApiService: JsonApiService) {}

	ngOnInit() {
		this.initDate().then(() => this.load());
		this.selectCompany();
	}
	//刷新
	refresh() {
		this.load();
	}
	//导出
	export_totle() {
		this.startTime = $('#datetimepicker1').val();
		this.endTime = $('#datetimepicker2').val();
		var temdate = new Date();
		var nowTime = temdate.getTime().toString();
		var parameters = {
			deviceId: this.deviceId,
			startTime: this.startTime,
			endTime: this.endTime,
			fileName: "重量统计" + nowTime
		}
		let timeCheck = common.correctTime(parameters, ['fileName']);
		if(!timeCheck.status) {
			this.jsonApiService.message(timeCheck.message);
			return;
		}
		common.exprotDataFile(parameters, 'param', config.BaseURL + 'transportweight/exportData.html')	
	}
	//初始化时间
	initDate() {
		var that = this;
		return new Promise(function(resolve, reject) {
			System.import('assets/js/datepicker/js/bootstrap-datetimepicker.min.js').then(
				() => {
					System.import('assets/js/datepicker/locales/bootstrap-datetimepicker.zh-CN.js').then(() => {
						$("#datetimepicker1").datetimepicker({ //时间插件
							format: "yyyy-mm-dd hh:ii:ss",
							language: "zh-CN",
							autoclose: true,
						}).on("changeDate", function(e) {
							var date = e.date;
							var time = common.getTimeMmss(date);
							$("#datetimepicker2").datetimepicker("setStartDate", time);
						});
						$("#datetimepicker2").datetimepicker({ //时间插件
							format: "yyyy-mm-dd hh:ii:ss",
							language: "zh-CN",
							autoclose: true,
						}).on("changeDate", function(e) {
							var date = e.date;
							var time = common.getTimeMmss(date);
							$("#datetimepicker1").datetimepicker("setEndDate", time);
						});
						//						var date = new Date();
						//						$("#datetimepicker2").val(common.getTimeMmss(date));//当前时间
						//						date.setDate(date.getDate() - 7);//设置前一天
						//						$("#datetimepicker1").val(common.getTimeMmss(date));
						resolve();
					});
				}
			);
		})
	}
	//初始化车辆数据
	selectCompany() {
		System.import('script-loader!select2/dist/js/select2.min.js').then(() => {
			System.import('assets/js/select2-zh-CN.js').then(() => {
				var that = this;
				$("#carNumberSelect2").select2({
					language: "zh-CN",
					placeholder: "请选择",
					minimumInputLength: 2, //最少2个字符，select2才显示查询的内容
					ajax: {
						url: config.BaseURL + "stats/carListByCarNumber.html",
						dataType: 'json',
						delay: 50,
						method: "POST",
						xhrFields: {
							withCredentials: true
						},
						data: function(params) {
							return {
								"carNumber": params.term // search term
							};
						},
						processResults: function(data, params) {
							var options = new Array();
							// 小于10个数量才判断重复
							if(data.data.length<=10){
								let arr = []
								let sameCar = []
								// 判断相同的车牌号
								for (let index = 0; index < data.data.length; index++) {
									let car = data.data[index];
									if(arr.indexOf(car.carNumber)!=-1){
										sameCar.push(car.carNumber)
									}else{
										arr.push(car.carNumber);
									}
								}
								$(data.data).each(function(index, car) {
									if(sameCar.indexOf(car.carNumber)!=-1){
										options.push({
											id: car.deviceId,
											text: car.carNumber+"["+car.parentName+"]"
										})
									}else{
										options.push({
											id: car.deviceId,
											text: car.carNumber
										})
									}
								});
							}else{
								$(data.data).each(function(index, car) {
									options.push({
										id: car.deviceId,
										text: car.carNumber
									})
								});
							}
							return {
								results: options //获取查询后的结果
							};
						},
						cache: true
					},
					templateResult: this.formatRepo
				}).on("select2:select", function(e) {
					var data = e.params.data;
					that.deviceId = data.id;
				});
			})
		})
	}
	//select2 格式回调函数
	formatRepo(state) {
		if(!state.id) {
			return state.text
		};
		var $state = $('<span><i class="fa fa-car green"></i>&nbsp;&nbsp;' + state.text + '</span>');
		return $state;
	}
	//清除车辆选中值
	del_carNumber() {
		this.deviceId = '';
		var str = $("<span class='select2-selection__placeholder'>请选择</span>");
		$('#carNumberSelect2').val("");
		$("#select2-carNumberSelect2-container").empty();
		$("#select2-carNumberSelect2-container").attr("title", "");
		$("#select2-carNumberSelect2-container").prepend(str);
	}
	//查询
	search_data() {
		this.curPage = 1;
		this.load();
	}
	//初始化加载list数据
	load() {
		this.startTime = $('#datetimepicker1').val();
		this.endTime = $('#datetimepicker2').val();
		let timeCheck = common.correctTimeParams(this.startTime, this.endTime, 0);
		if(!timeCheck.status) {
			this.jsonApiService.message(timeCheck.message);
			return;
		}
		let reqdata = 'gridPager={"pageSize":' + this.pageSize + ',"nowPage":' + this.curPage + ',"parameters":{"startTime":"' + this.startTime + '","endTime":"' + this.endTime + '","deviceId":"' + this.deviceId + '"}}'
		this.jsonApiService.http("transportweight/transportWeightList.html", reqdata).subscribe(data => {
			if(data.exhibitDatas) {
				for(let item of data.exhibitDatas) {
					item.weight = common.twoDecimal(item.weight);
					item.weighbridge = common.twoDecimal(item.weighbridge);
				}
			}
			this.tableData = data.exhibitDatas;
			this.totalCount = data.recordCount;
		})
	}
	//删除所选时间
	del_date() {
		this.startTime = '';
		this.endTime = '';
		$("#datetimepicker1").val('').change();
		$("#datetimepicker2").val('').change();
		$("#datetimepicker2").datetimepicker("setStartDate", null);
		$("#datetimepicker1").datetimepicker("setEndDate", null);
	}
	//分页回调
	paginate(e) {
		this.curPage = e.page + 1;
		this.pageSize = e.rows;
		this.load();
	}
}